The present invention relates to computer generated images. More specifically, the present invention relates to improved methods and apparatus for modeling computer-generated objects and assembling them to create scenes.
Due to their powerful data processing capabilities, computers have long been employed for generating complex still images and animation sequences. In the generation of a flight simulation animation sequence, for example, a computer may be employed to first create a set of component objects, such as the ground plane, trees, hills, buildings, and the like. The component objects may then be assembled into one or more scenes. Once the scenes are assembled, an airplane may be disposed therein during the execution of the flight simulation program to give the visual illusion of flight.
In the prior art, the task of creating the set of computer-generated objects, such as the aforementioned trees and hills, as well as the task of assembling those objects into scenes typically involves a substantial amount of time and effort. For discussion purposes, FIG. 1 depicts an exemplar prior art process for generating a simple scene that may include objects such as trees, houses, bridges, and the like.
In the prior art process of FIG. 1, a modeler 50, representing the person who, through his familiarity with the subject to be modeled, conceptualizes the scene to be created and the objects contained therein. The objects and scenes are modeled by the modeler, typically through a modeling program, results in a set of specifications (52) for the modeled objects. The set of model objects specifications (52) may include general characteristics such as the colors, shapes, textures of objects, and the like. Once created, the set of specifications (52) may then be transmitted to a programmer (54). The programmer (54) represents the person who possesses the necessary computer programming skills to translate the set of specifications (52), which is provided by the modeler (50), into a computer database of objects (56).
The modeler (50) may also furnish the rules regarding object orientation and object spatial relationships to the programmer (54). The programmer (54) may then hardcode the provided instructions, along with these rules, into the programmed instructions (56). For example, the programmer (54) may calculate the point representing the bottom end of a tree trunk and the vector at this point for the purpose of aligning the tree in the upright direction. These independently derived calculations may then be hardcoded, in a customized manner, into the programmed instructions. These programmed instructions allow the assembler (58) to assemble a given tree with the ground plane, with the tree in its upright position and the bottom end of its trunk disposed at some predefined location in the ground plane of the scene. As the term is used herein, the assembler represents the person who employs the programmed instructions provided by the programmer to put the specific scenes together. The predefined location represents one of the locations specified in advance by the programmer in the prior art to indicate where a specific object may be disposed, e.g., where the tree is allowed to be in the assembled scene.
Although the prior art method achieves its objective of creating scenes from objects modeled by the modeler, there are many disadvantages. For example, unless the modeler also understands computer programming techniques (or the computer programmer happens to be well-versed in the technical details of the subject to be modeled), the modeler must typically spend a great deal of time educating the programmer in the particulars of the objects to be modeled. For some complex images, e.g., those related to aforementioned biomedical field, the amount of time invested on the part of the modeler to ensure that the programmer correctly creates a database of objects may be quite substantial.
In the prior art process of FIG. 1, the modeler must invest a substantial amount of time to ensure that the programmer correctly understood the rules regarding the objects' orientation and spatial relationships, and that the programmer correctly hardcodes these rules into the programmed instructions. Further, the modeler must also spend another substantial amount of time to ensure that the assembler understands how the specific objects are to be assembled in the assembled scene, especially in the fine details of their orientation and spatial alignments. As can be appreciated from the foregoing, even if skilled programmers and skilled assemblers are available and are capable of understanding the particulars of the modeled objects from the modeler, the prior art processes are at best inefficient.
Further, the prior art approach requires customized software programs for generating and assembling objects. This is because the relationship among objects must be hardcoded in the prior art, e.g., the programmer must write specific programmed instructions to cause a bridge object to exhibit the specific behavior of looking for a river object and aligning itself across the river in a specific manner. Because of this customized approach, a program suitable for assembling an image of, for example, a part of a city, cannot be employed to assemble an image of, for example, an automobile engine. When a new scene involving new objects needs to be assembled, the customized approach of the prior art necessitates the extensive rewriting of the existing program, or the writing of a completely new program. As is known, such customization typically involves great expenditures in terms of time and effort, thereby making scene creation in the prior art a costly undertaking.
In view of the foregoing, what is desired are improved methods and apparatus for modeling computer-generated objects and assembling them to create scenes.